GtkIconTheme: Only look at resources for hicolor
authorMatthias Clasen <mclasen@redhat.com>
Mon, 30 Jun 2014 20:03:03 +0000 (16:03 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Mon, 30 Jun 2014 20:03:03 +0000 (16:03 -0400)
We want to treat icons coming from resources as builtins that
are looked at as part of Hicolor.

gtk/gtkicontheme.c

index 61b6e347af8a6224a78440da3ea0b898bc533f41..360e2441853b674b358b843322d130522c932766 100644 (file)
@@ -3261,27 +3261,30 @@ theme_subdir_load (GtkIconTheme *icon_theme,
         g_free (full_dir);
     }
 
-  for (d = icon_theme->priv->resource_paths; d; d = d->next)
-    {
-      full_dir = g_build_filename ((const gchar *)d->data, theme->name, subdir, NULL);
-      dir = g_new0 (IconThemeDir, 1);
-      dir->type = type;
-      dir->is_resource = TRUE;
-      dir->context = context;
-      dir->size = size;
-      dir->min_size = min_size;
-      dir->max_size = max_size;
-      dir->threshold = threshold;
-      dir->dir = full_dir;
-      dir->subdir = g_strdup (subdir);
-      dir->scale = scale;
-      dir->cache = NULL;
-      dir->subdir_index = -1;
-
-      if (scan_resources (icon_theme->priv, dir, full_dir))
-        theme->dirs = g_list_prepend (theme->dirs, dir);
-      else
-        theme_dir_destroy (dir);
+  if (strcmp (theme->name, DEFAULT_THEME_NAME) == 0)
+    { 
+      for (d = icon_theme->priv->resource_paths; d; d = d->next)
+        {
+          full_dir = g_build_filename ((const gchar *)d->data, theme->name, subdir, NULL);
+          dir = g_new0 (IconThemeDir, 1);
+          dir->type = type;
+          dir->is_resource = TRUE;
+          dir->context = context;
+          dir->size = size;
+          dir->min_size = min_size;
+          dir->max_size = max_size;
+          dir->threshold = threshold;
+          dir->dir = full_dir;
+          dir->subdir = g_strdup (subdir);
+          dir->scale = scale;
+          dir->cache = NULL;
+          dir->subdir_index = -1;
+
+          if (scan_resources (icon_theme->priv, dir, full_dir))
+            theme->dirs = g_list_prepend (theme->dirs, dir);
+          else
+            theme_dir_destroy (dir);
+        }
     }
 }